home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / cmsrc392.zip / CALU.MF < prev    next >
Text File  |  1992-03-30  |  16KB  |  395 lines

  1. % Calligraphic capitals with `fixed' pens, by N. N. Billawala (1985).
  2.  
  3. % These letters are intended for math, hence |math_fitting| is assumed.
  4.  
  5. % Character codes \0101 through \0132 are generated.
  6.  
  7. cmchar "Calligraphic A";
  8. beginchar("A",14.4u#,cap_height#,0);
  9. italcorr .5u#;
  10. adjust_fit(-.05w#,0); pickup cal.nib;
  11. lft x5=.54w; x7=.9w;
  12. top y5=h+.4cap_curve; bot y7=bot_flourish_line;
  13. z6=.3[z7,z5]-bend;
  14. pickup tilted.nib;
  15. lft x1=.05w; x2=.2w; rt x4=x5;
  16. y1=y2+.1h; bot y2=bot_flourish_line; top y4=h+.4cap_curve;
  17. y3=y6; z3=whatever[z2,z4]+2bend;
  18. draw\\(z1..tension 1.2..{right}z2) softjoin flex(z2,z3,z4); % left diagonal
  19. pickup cal.nib;
  20. erase fill\\(0,bot y5)--(w,bot y5)--(w,top y5)--(0,top y5)--cycle;
  21. draw flex(z5,z6,z7) softjoin (z7--z7+cal.extension); % right diagonal
  22. draw rt z3--z6;  % bar
  23. math_fit(.5u#-.1cap_height#*slant,ic#); labels(1,2,3,4,5,6,7); endchar;
  24.  
  25. cmchar "Calligraphic B";
  26. beginchar("B",9.9u#,cap_height#,0);
  27. italcorr max(.8h#*slant-.1w#,.3h#*slant)+.5u#;
  28. adjust_fit(0,0); pickup cal.nib;
  29. lft x1=lft x3=0; x4=.6[x2,x5]; rt x5=.9w; x6=.4w; rt x7=w;
  30. x8=.4[x9,x7]; lft x9=rt x3;
  31. top y1=h+o; bot y3=-o; z2=.3[z3,z1]+bend;
  32. y4=y1; y5=.6[y6,y4]; y6=.55h; y7=.45[y8,y6]; bot y8=-o; y9=.1h;
  33. draw z1-cal.extension--flex(z1,z2,z3);  % stem
  34. draw z2{up}...z4...z5{down}...{dir 200}z6{dir 10}
  35.  ...z7{down}...z8{left}...z9;  % lobes
  36. math_fit(.5u#,.3h#*slant+.5u#); labels(1,2,3,4,5,6,7,8,9); endchar;
  37.  
  38. cmchar "Calligraphic C";
  39. beginchar("C",9.4u#,cap_height#,0);
  40. italcorr max(h#*slant-.15w#,.2h#*slant)+.5u#;
  41. adjust_fit(0,0); pickup cal.nib;
  42. x0=.7[x2,x1]; rt x1=.85w; x2=.6w; lft x3=0; x4=.5w; rt x5=w;
  43. y0=.7h; y1=.8[y0,y2]; top y2=h+o; y3=.5h; bot y4=-o; y5=.2h;
  44. draw\\(z0{2(x1-x0),y1-y0}...z1)
  45.   softjoin (z1...z2{left}....z3{down}...z4...z5);  % stroke
  46. math_fit(.5u#-.5h#*slant,.2h#*slant+.5u#); labels(0,1,2,3,4,5); endchar;
  47.  
  48. cmchar "Calligraphic D";
  49. beginchar("D",10u#,cap_height#,0);
  50. italcorr .6h#*slant+.5u#;
  51. adjust_fit(4u#,0); pickup cal.nib;
  52. lft x1=lft x3=0; x4=.2[x1,x5]; rt x5=w; x6=.2w; x7=0;
  53. top y1=top y4=h; bot y3=0; z2=.5[z3,z1]+bend;
  54. y5=.51[y6,y4]; bot y6=bot y7=0;
  55. draw flex(z1,z2,z3);  % stem
  56. draw z1---z4....z5{down}...z6---z7;  % lobe
  57. draw z1{left}...{down}z1-flourish_change;  % swash
  58. math_fit(.5u#-.8h#*slant,ic#-.5u#); labels(1,2,3,4,5,6,7); endchar;
  59.  
  60. cmchar "Calligraphic E";
  61. beginchar("E",8.5u#,cap_height#,0);
  62. italcorr max(h#*slant-.1w#,.2h#*slant)+.5u#;
  63. adjust_fit(0,0); pickup cal.nib;
  64. x1=.9[x3,x2]; rt x2=.9w; x3=.6[x4,x2]; lft x4=.05w;
  65. x5=.7[x6,x2]; lft x6=0; x7=.5[x6,x8]; rt x8=w;
  66. y1=y2-.1h; y2=.9h+o; top y3=h+o; y4=.5[y5,y3];
  67. y5=.55h; y6=.6[y5,y7]; bot y7=-o; y8=.2h;
  68. draw\\(z1{2(x2-x1),y2-y1}...z2)
  69.  softjoin (z2...z3{left}...z4{down}...{right}z5);  % upper arc
  70. draw z5{left}...z6{down}...z7{right}...z8;  % lower arc
  71. math_fit(.5u#-.2h#*slant,.2h#*slant+.5u#);
  72. labels(1,2,3,4,5,6,7,8); endchar;
  73.  
  74. cmchar "Calligraphic F";
  75. beginchar("F",13.5u#,cap_height#,0);
  76. italcorr h#*slant+.5u#;
  77. adjust_fit(-.1w#,-u#); pickup cal.nib;
  78. x1=.5w; x3=.4w;  lft x4=.1w; x5=x2+.35w; x6=.7[x1,x7]; rt x7=w;
  79. top y1=top y6=h; z2=.5[z3,z1]+1.2bend;
  80. bot y3=-o; y4=.1h; y5=y2; y7=.9h;
  81. draw flex(z1,z2,z3) softjoin (z3...{x4-x3,5(y4-y3)}z4);  % stem
  82. draw z1-flourish_change{up}...(z1-(u,0))---z6...{down}z7;  %  upper bar
  83. draw z2--z5--z5-(0,.1cap_curve);  % middle bar
  84. math_fit(0,.5ic#); labels(1,2,3,4,5,6,7); endchar;
  85.  
  86. cmchar "Calligraphic G";
  87. beginchar("G",9.4u#,cap_height#,.5desc_depth#);
  88. italcorr max(h#*slant-.05w#,.5h#*slant)+.5u#;
  89. adjust_fit(0,0); pickup cal.nib;
  90. x0=.7[x2,x1]; rt x1=.95w; x2=.6w; lft x3=0; x4=.5w;
  91. rt x5=w; x6=.5[x7,x5]; lft x7=.2w;
  92. y0=.7h+o; y1=.8[y0,y2]; top y2=h+o; y3=.5[y4,y2]; bot y4=.1h;
  93. y5=.5h; bot y6=-d-o; y7=-.5d;
  94. draw\\(z0{2(x1-x0),y1-y0}...z1)
  95.  softjoin (z1...z2{left}....z3{down}...z4...{up}z5);  % arc
  96. draw z5{down}...z6{left}...z7;  % tail
  97. math_fit(.5u#-.4h#*slant,.5h#*slant+.5u#);
  98. labels(0,1,2,3,4,5,6,7); endchar;
  99.  
  100. cmchar "Calligraphic H";
  101. beginchar("H",12.2u#,cap_height#,0);
  102. italcorr max(h#*slant-.2w#,.15h#*slant)+.5u#;
  103. adjust_fit(4u#,0); pickup cal.nib;
  104. lft x1=lft x3=.5u; rt x4=rt x6=.8w-.6u; rt x9=w;
  105. top y1=top y4=h; bot y3=-.06h; bot y6=bot_flourish_line; y9=y6+.1h;
  106. z2=.6[z3,z1]+bend; z5=.4[z6,z4]-bend;
  107. path p[]; p1=flex(z1,z2,z3); p2=flex(z4,z5,z6);
  108. p3=(-w,.45h)--(2w,.45h);
  109. rt z7+2bend=p3 intersectionpoint p1; rt z8=p3 intersectionpoint p2;
  110. draw (z1-flourish_change-bend{curl2}....z1-(u,0)---z1) softjoin p1;  % left stem
  111. draw p2 softjoin (z6{right}...{up}z9);  % right stem
  112. draw z7--z8;  % bar
  113. math_fit(.5u#-.8h#*slant,.15h#*slant+.5u#);
  114. labels(1,2,3,4,5,6,7,8,9); endchar;
  115.  
  116. cmchar "Calligraphic I";
  117. beginchar("I",10.8u#,cap_height#,0);
  118. italcorr max(h#*slant+.5cap_curve#-.2w#,.15h#*slant)+.5u#;
  119. adjust_fit(0,0); pickup cal.nib;
  120. lft x0=0; x1=.9w; x2=x4=.5w; x5=.2w; x6=.8w; rt x7=1.05w;
  121. y0=.8h; top y1=top y2=h; z3=.5[z4,z2]+bend;
  122. bot y4=bot y5=bot y6=0; y7=.15h;
  123. draw z0{up}...z2---z1;  % upper bar
  124. z8=.5[z2,z1];
  125. draw z8{left}...z3{down}...{left}.5[z4,z5];  % stem
  126. draw z5---z6...{up}z7;  % lower bar
  127. math_fit(.5u#-.8h#*slant,.15h#*slant+.5u#);
  128. labels(0,1,2,3,4,5,6,7); endchar;
  129.  
  130. cmchar "Calligraphic J";
  131. beginchar("J",11.7u#,cap_height#,.5desc_depth#);
  132. italcorr h#*slant+.25u#;
  133. adjust_fit(0,0); pickup cal.nib;
  134. x0=.6w; rt x1=w; rt x2=.75w; x3=.5[x4,x2]; lft x4=0;
  135. top y0=top y1=h; y2=.2h; bot y3=-d-o; y4=d;
  136. draw z1---z0...{down}z0-(4u,2/7h);  % upper bar
  137. draw z1{left}...z2{down}...z3{left}...{up}z4;  % stem and tail
  138. math_fit(.5u#,0); labels(0,1,2,3,4); endchar;
  139.  
  140. cmchar "Calligraphic K";
  141. beginchar("K",11u#,cap_height#,0);
  142. italcorr max(h#*slant-.2w#,.2h#*slant)+.5u#;
  143. adjust_fit(0,.1w#); pickup cal.nib;
  144. lft x1=lft x3=0; top y1=h+o; bot y3=-o; z2=.6[z3,z1]+bend;
  145. draw z1-cal.extension--flex(z1,z2,z3);  % stem
  146. pickup light_cal.nib;
  147. rt x4=.9w; x5=x4-.1w; x7=.8w; rt x8=1.1w;
  148. y4=.9h; top y5=h+o; bot y7=-o; y8=.2h-o;
  149. (lft z6)t_=z2.t_+penoffset up of pen_[cal.nib];
  150. draw z4{up}...{left}z5..tension atleast 2..{down}z6
  151.  ..tension atleast 3 and atleast 2..z7{right}...{up}z8;  % diagonals
  152. math_fit(.5u#,.2h#*slant+.5u#); labels(1,2,3,4,5,6,7,8); endchar;
  153.  
  154. cmchar "Calligraphic L";
  155. beginchar("L",10.8u#,cap_height#,0);
  156. italcorr .2h#*slant+.5u#;
  157. adjust_fit(0,0); pickup heavy_cal.nib;
  158. x1=.2w; x2=x1+.3w; rt x3=x2+.25w; lft x4=0;
  159. x5=.8[x4,x6]; rt x6=w; x7=.2[x4,x5];
  160. y1=.4h-o; top y2=h+o; y3=.8h; bot y4=bot y5=-o;
  161. y6=.2h-o; y7=9/70h-o;
  162. path p; p=z4...z7{right}..{right}z5...{up}z6; draw p;  % arm
  163. draw z4{dir .75angle(direction 0 of p)}
  164.  ...z1{up}...z2{right}...{down}z3;  % stem and flourish
  165. math_fit(.5u#,ic#); labels(1,2,3,4,5,6,7); endchar;
  166.  
  167. cmchar "Calligraphic M";
  168. beginchar("M",19.8u#,cap_height#,0);
  169. italcorr max(h#*slant-u#,.75cap_curve#)+.5cap_curve#+.5u#;
  170. adjust_fit(-.1w#,0); pickup med_cal.nib;
  171. (z20)t_=(z5)t_+penoffset down of currentpen
  172.  =(z4)t_+penoffset down of pen_[tilted.nib];
  173. z6=.3[z7,z5]-bend; z9=.3[z8,z10]+.5bend; z12=.3[z13,z11]-bend;
  174. x7=.5[x2,x13]; bot y7=.05h; top y5=h+o;
  175. (z0)t_=(z7)t_+penoffset right of currentpen
  176.  =(z8)t_+penoffset right of pen_[tilted.nib];
  177. pickup cal.nib;
  178. (z30)t_=(z11)t_+penoffset up of currentpen
  179.  =(z10)t_+penoffset up of pen_[tilted.nib];
  180. x13=w; bot y13=bot_flourish_line;
  181. pickup tilted.nib;
  182. lft x1=.1w; x2=.2w; x4=.2[x2,x7]; x10=.8[x7,x13];
  183. y1=.05h+y2; bot y2=bot_flourish_line; top y10=h+o;
  184. z3=whatever[z2,z4]+2bend; y3=y6;
  185. draw\\(z1..tension1.2..{right}z2) softjoin flex(z2,z3,z4);  % left stem
  186. erase fill z20--(.5w,y20)--(.5w,top y4)--(x20-4u,top y4)--cycle;
  187. pickup med_cal.nib;
  188. draw flex(z5,z6,z7);  % left diagonal
  189. pickup cal.nib;
  190. draw flex(z11,z12,z13) softjoin (z13--z13+cal.extension);  % right stem
  191. pickup tilted.nib;
  192. path p; p=flex(z8,z9,z10);
  193. erase fill z0--(x0,y0-.5h)--(x9,y0-.5h)--subpath(1,0) of p--cycle;
  194. erase fill z30--(x30,y30+.5h)--(x9,y30+.5h)--subpath(1,2) of p--cycle;
  195. draw p;  % right diagonal
  196. math_fit(.5u#-.05h#*slant,ic#);
  197. labels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,20,30); endchar;
  198.  
  199. cmchar "Calligraphic N";
  200. beginchar("N",9u#,cap_height#,0);
  201. italcorr h#*slant+.5u#;
  202. adjust_fit(2u#,2.5u#); pickup med_cal.nib;
  203. (z0)t_=(z5)t_+penoffset down of currentpen
  204.  =(z4)t_+penoffset down of pen_[tilted.nib];
  205. (z20)t_=(z7)t_+penoffset up of currentpen
  206.  =(z8)t_+penoffset up of pen_[tilted.nib];
  207. z6=.3[z7,z5]-bend; rt z7=(w,0); top y5=h+o;
  208. pickup tilted.nib;
  209. lft x1=x2-2u; x2=-u; x4=0; x10=w; rt x11=w+3u;
  210. y1=y2+.05h; bot y2=bot_flourish_line;
  211. y3=y6; z3=whatever[z2,z4]+2bend;
  212. y10=h; z9=.7[z8,z10]-.5bend; bot y11=h;
  213. draw\\(z1..tension1.2..{right}z2) softjoin flex(z2,z3,z4);  % left stem
  214. draw flex(z8,z9,z10)...{right}z11;  % right stem
  215. pickup med_cal.nib;
  216. erase fill  z0--(.5w,y0)--(.5w,1.5h)--(x0-4u,1.5h)--cycle;
  217. erase fill  z20--(.5w,y20)--(.5w,-.5h)--(x20+4u,-.5h)--cycle;
  218. draw flex(z5,z6,z7);  % diagonal
  219. math_fit(.5u#-.05h#*slant,.3h#*slant);
  220. labels(0,1,2,3,4,5,6,7,8,9,10,11,20); endchar;
  221.  
  222. cmchar "Calligraphic O";
  223. beginchar("O",12.6u#,cap_height#,0);
  224. italcorr .7h#*slant+.5u#;
  225. adjust_fit(0,0); pickup cal.nib;
  226. x1=.3w; lft x2=0; x3=.5w; rt x4=w; x5=.6w; lft x6=.27w;
  227. top y1=top y5=h+o; y2=.55h; bot y3=-o; y4=.5h; y6=y2;
  228. path p; p=z1...z2{down}...z3{right}...z4{up}...z5{left}...{down}z6;
  229. draw subpath(0,4.8) of p;  % bowl
  230. math_fit(.5u#-.3h#*slant,ic#-.5u#);
  231. labels(1,2,3,4,5,6); endchar;
  232.  
  233. cmchar "Calligraphic P";
  234. beginchar("P",9u#,cap_height#,0);
  235. italcorr .8h#*slant+.5u#;
  236. adjust_fit(4u#,0); pickup cal.nib;
  237. lft x1=lft x3=0; x4=x6=.3[x1,x5]; rt x5=w;
  238. top y1=top y4=h; y3=-o; y5=.55[y6,y4]; bot y6=.3h;
  239. z2=.5[z3,z1]+bend;
  240. draw flex(z1,z2,z3);  % stem
  241. draw z1{left}...{down}z1-flourish_change;  % swash
  242. draw z1---z4...z5{down}...{left}z6;  % lobe
  243. math_fit(.5u#-.8h#*slant,.5ic#); labels(1,2,3,4,5,6); endchar;
  244.  
  245. cmchar "Calligraphic Q";
  246. beginchar("Q",11.7u#,cap_height#,.5desc_depth#);
  247. italcorr max(0,.6h#*slant-2u#)+.5u#;
  248. adjust_fit(0,2u#); pickup cal.nib;
  249. x0=.6w; x1=.4w; lft x2=0; x3=.5w; rt x4=w; x5=.6w; lft x6=0;
  250. x7=.23w; rt x8=w; x9=x8+2u;
  251. y0=.25h; bot y1=.15h; y2=.45[y1,y3]; top y3=h+o; y4=.5h; bot y5=0;
  252. y6=y7=y9=0; y8=-d;
  253. draw z0...z1{left}...z2{up}...z3{right}
  254.  ...z4{down}...z5...{left}z7; % bowl
  255. draw z7{right}...z8{right}...{up}z9;  % tail
  256. math_fit(.5u#,ic#); labels(0,1,2,3,4,5,6,7,8,9); endchar;
  257.  
  258. cmchar "Calligraphic R";
  259. beginchar("R",12.6u#,cap_height#,0);
  260. italcorr .2h#*slant;
  261. adjust_fit(4u#,0); pickup cal.nib;
  262. lft x1=lft x3=0; x4=1/4[x1,x5]; rt x5=.7w;
  263. x6=.4[x1,x5]; rt x7=.8w; rt x8=w;
  264. top y1=top y4=h; bot y3=bot y7=-o; y5=.55[y6,y4]; bot y6=.4h; y8=.15h;
  265. z2=.5[z3,z1]+bend;
  266. draw flex(z1,z2,z3);  % stem
  267. draw z1{left}...{down}z1-flourish_change;  % swash
  268. draw z1---z4....z5{down}...{left}z6;  % lobe
  269. draw z6{right}..tension atleast 1.5..z7{right}..z8;  % tail
  270. math_fit(.5u#-.8h#*slant,ic#); labels(1,2,3,4,5,6,7,8); endchar;
  271.  
  272. cmchar "Calligraphic S";
  273. beginchar("S",9.9u#,cap_height#,0);
  274. italcorr max(.9h#*slant-.05w#,.3h#*slant)+.5u#;
  275. adjust_fit(0,0); pickup cal.nib;
  276. rt x0=rt x1=.95w; x2=.5[x3,x1]; lft x3=.15w; x4=.5[x6,x2];
  277. rt x5=w; x6=.5w; lft x7=0; lft x8=.075w;
  278. y0=.8h; y1=.9h; top y2=h+o; y3=.55[y4,y2]; y4=.55[y6,y2];
  279. y5=.45[y6,y4]; bot y6=-o; y7=.2h; y8=.35h;
  280. draw\\(z0--z1) softjoin (z1...z2{left}...z3{down}...z4...z5{down}
  281.   ...z6{left}...z7) softjoin (z7{up}...{right}z8);  % stroke
  282. math_fit(.5u#-.3h#*slant,.3h#*slant+.5u#);
  283. labels(0,1,2,3,4,5,6,7,8); endchar;
  284.  
  285. cmchar "Calligraphic T";
  286. beginchar("T",13u#,cap_height#,0);
  287. italcorr h#*slant+.5u#;
  288. adjust_fit(0,-.5u#); pickup heavy_cal.nib;
  289. x1=.47w; x3=.5w; lft x4=0; x5=.25w; x6=.85w; rt x7=1.05w;
  290. top y1=h; bot y3=-.1h; y4=3/4h; top y5=top y6=h; top y7=1.05h;
  291. z2=.3[z3,z1]+bend;
  292. top y0=y1; x0=x2;
  293. z8=(2u,.2h);
  294. draw z0---z2...z3;  % stem
  295. draw z4{curl 2}...z5{right}...z6{right}...{up}z7;  % arms
  296. math_fit(.5u#-5/7h#*slant,-u#); labels(1,2,3,4,5,6,7); endchar;
  297.  
  298. cmchar "Calligraphic U";
  299. beginchar("U",11u#,cap_height#,0);
  300. italcorr h#*slant+.5u#;
  301. adjust_fit(0,0); pickup cal.nib;
  302. x1=x2-.15w; lft x2=.05w; x3=x2; x4=.25[x3,x6]; rt x6=rt x8=w;
  303. y1=y2-.05h; top y2=h; y3=.3w; bot y4=-o;
  304. top y6=h; bot y8=bot_flourish_line;
  305. z7=.3[z8,z6]-bend;
  306. draw z1...z2{right}..tension 2 and 1..z3{down}
  307.  ...{right}z4..tension atleast 1.5..{up}z6;  % left stem and arc
  308. draw flex(z6,z7,z8) softjoin (z8--z8+cal.extension);  % right stem
  309. math_fit(.5u#-min(.3h#*slant+.1w#,.95h#*slant),.5ic#);
  310. labels(1,2,3,4,6,7,8); endchar;
  311.  
  312. cmchar "Calligraphic V";
  313. beginchar("V",11.25u#,cap_height#,0);
  314. italcorr .8h#*slant+.5u#;
  315. adjust_fit(0,0); pickup med_cal.nib;
  316. x1=0; top y1=h; z3=(.48w,0);
  317. z0.t_=z2.t_+penoffset down of currentpen
  318.  =z3.t_+penoffset down of pen_[tilted.nib];
  319. draw z1{right}..tension atleast 1 and infinity..z2;  % left diagonal
  320. pickup tilted.nib; rt x4=w; x5=x4-.2w; top y4=.8h; top y5=h;
  321. path p; p=z3..tension atleast 3 and 1..{up}z4;
  322. erase fill z0--(x0,y0-.5h)--(x4,y0-.5h)--(x4+eps,y4)--reverse p--cycle;
  323. draw p...{left}z5;  % right diagonal
  324. math_fit(.5u#+.5cap_curve#-h#*slant,.5ic#); labels(0,1,2,3,4,5); endchar;
  325.  
  326. cmchar "Calligraphic W";
  327. beginchar("W",18u#,cap_height#,0);
  328. italcorr .8h#*slant+.5u#;
  329. adjust_fit(0,0); pickup med_cal.nib;
  330. x1=0; x3=.5[x1,x6]; x6=.52w; x9=.58[x6,x10]; y3=y9=0; top y1=top y6=h;
  331. z7=.5[z8,z6]+bend; z4=.5[z3,z5]+bend;
  332. (z0)t_=(z2)t_+penoffset down of currentpen
  333.  =(z3)t_+penoffset down of pen_[tilted.nib];
  334. (z20)t_=(z8)t_+penoffset down of currentpen
  335.  =(z9)t_+penoffset down of pen_[tilted.nib];
  336. draw z1{right}..tension atleast 1 and infinity..z2;  % first diagonal
  337. pickup tilted.nib;
  338. x5=x6; rt x10=w; x11=x10-.1w; top y5=h; top y10=.8h; top y11=h;
  339. erase fill z0--(x0,y0-.5h)--(x5,y0-.5h)--z5..z4..z3--cycle;
  340. draw z3..z4..z5;  % second diagonal
  341. pickup med_cal.nib;
  342. erase fill\\(.3w,bot y6)--(w,bot y6)--(w,top y6)--(.3w,top y6)--cycle;
  343. draw z6..z7..z8;  % third diagonal
  344. pickup tilted.nib; path p; p=z9..tension atleast 3 and 1..{up}z10;
  345. erase fill z20--(x20,y20-.5h)--(x10,y20-.5h)--(x10+eps,y10)
  346.  --reverse p--cycle;
  347. draw p..{left}z11;  % fourth diagonal
  348. math_fit(.5u#+.5cap_curve#-h#*slant,.5ic#);
  349. labels(0,1,2,3,4,5,6,7,8,9,10,11,20); endchar;
  350.  
  351. cmchar "Calligraphic X";
  352. beginchar("X",11.4u#,cap_height#,0);
  353. italcorr h#*slant+.5u#;
  354. adjust_fit(0,0); pickup cal.nib;
  355. lft x1=.08w; lft x2=.2w; x4-x3=x2-x1; rt x4=w;
  356. h-y1=y4=1/9h; top y2=h; bot y3=0;
  357. draw z1{up}....z2{right}
  358.  ... .2[z2+(.1w,0),z3-(.1w,0)]---.8[z2+(.1w,0),z3-(.1w,0)]
  359.  ...{right}z3....{up}z4;  % left diagonal
  360. x5=x6-u; rt x6=w; lft x7=0; x8=x7+u;
  361. top y5=h; y6=.85h; y7=h-y6; bot y8=0;
  362. draw z5{right}...z6{down}
  363.  ..tension atleast 3..{down}z7...{right}z8;  % right diagonal
  364. math_fit(.5u#,1/7h#*slant+.5u#); labels(1,2,3,4,5,6,7,8); endchar;
  365.  
  366. cmchar "Calligraphic Y";
  367. beginchar("Y",11.75u#,cap_height#,.5desc_depth#);
  368. italcorr .8h#*slant+.5u#;
  369. adjust_fit(0,0); pickup med_tilted.nib;
  370. rt x5=w; x6=x5-2.2u; top y5=.8h; top y6=h;
  371. x4=.4w; lft x3=.15w; y3=good.y 0; y4=good.y -d;
  372. path p; p=z3..z4{right}..tension atleast 3 and 1..z5{up}...{left}z6;
  373. pickup med_cal.nib; x1=x2-u; y1=y2-.05h; lft x2=.6u; top y2=h;
  374. draw z1...z2{right}..tension atleast 1 and infinity
  375.  ..rt point 4/3 of p;  % left diagonal
  376. erase fill subpath(2,1) of p--(x5,y4)--(x5+eps,y5)--cycle;
  377. pickup med_tilted.nib; draw p;  % right diagonal
  378. math_fit(max(-1.2u#,.9u#-.95h#*slant),.5ic#); labels(1,2,3,4,5,6); endchar;
  379.  
  380. cmchar "Calligraphic Z";
  381. beginchar("Z",10.4u#,cap_height#,0);
  382. italcorr h#*slant+.5u#;
  383. adjust_fit(0,0); pickup heavy_cal.nib;
  384. lft x1=.05w; x2=.4w; rt x3=w; lft x7=0; x8=.8[x7,x9]; rt x9=1.1w;
  385. top y1=58/70h; top y2=top y3=h; bot y7=bot y8=0; bot y9=15/70h;
  386. z5=.55[z7,z3]+bend;
  387. x10=x5-2.5u; x11=x5+2u; x12=.2[x3,x2]; x13=.2[x7,x8];
  388. y10=y5; bot y11=y10-6/70h; y12=64/70h; y13=6/70h;
  389. draw z1{up}...z2{right}...{right}z12...z3;  % upper arm
  390. draw flex(z3,z5,z7);  % diagonal
  391. draw z7...z13{right}...{right}z8...{up}z9;  % lower arm
  392. pickup light_cal.nib;
  393. draw z10...z5{right}...{down}z11;  % bar
  394. math_fit(.5u#,.6ic#); labels(1,2,3,5,7,8,9,10,11,12,13); endchar;
  395.